import { axiosMock, delayFn, randArrItem } from '@/services/axiosMock'
import { DEFAULT_PAGE_SIZE } from '@/utils/pagination'
import type * as TList from '../interface'

axiosMock('default', mock => {
  // 获取路由模板列表
  mock.onPost(`/tmsapi/route_template/list`).reply(
    delayFn<TList.ITplRouteListRes>(600, ({ data }) => {
      return {
        success: true,
        data: {
          total: 2500,
          records: Array(+data.size || DEFAULT_PAGE_SIZE)
            .fill(null)
            .map<TList.ITplRouteListItem>((_item, index) => {
              const count = index + 1
              const dynamicFieldList = randArrItem(
                [
                  Array(randArrItem([1, 4, 8, 12]))
                    .fill(null)
                    .map((_d, i) => `{{dynamicField${i}}}`),
                ],
                0.1,
              )
              return {
                routeId: `${data.page}${count}`,
                routeNo: randArrItem([`路由编号-${count}`], 0.1),
                templateCn: randArrItem(
                  [
                    `中文模板标题\n中文模板中文模板中文模板中文模板中文模板\n 中文模板中文模板中文模板中文模板中文模板中文模板 \n 中文模板中文模板中文模板  中文模板中文模板中文模板-${count}`,
                  ],
                  0.1,
                ),
                templateEn: randArrItem(
                  [
                    `英文模板标题\n英文模板英文模板英文模板英文模板英文模板\n 英文模板英文模板英文模板英文模板英文模板英文模板 \n 英文模板英文模板英文模板  英文模板英文模板英文模板-${count}`,
                  ],
                  0.1,
                ),
                dynamicField: randArrItem(
                  [`dynamicField0${dynamicFieldList?.length ? `（${dynamicFieldList.length}）` : ''}`],
                  0.1,
                ),
                dynamicFieldList,
                routeNode: randArrItem([0, 1, 2, 3, 4, 5, 6, 7, 8], 0.1),
                logisticsStatus: randArrItem([0, 1, 2, 3, 4, 5, 6, 7], 0.1),
                routeType: randArrItem([1, 2]),
                actionFlag: randArrItem([0, 1]),
                visibleFlag: randArrItem([0, 1]),
              }
            }),
        },
      }
    }),
  )
})
